home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
gfx
/
misc
/
gnuplot-3.7src.lha
/
gnuplot-3.7src
/
gnuplot-3.7.lha
/
gnuplot-3.7
/
term
/
kyo.trm
< prev
next >
Wrap
Text File
|
1998-11-26
|
6KB
|
221 lines
/*
* $Id: kyo.trm,v 1.12 1998/04/14 00:17:52 drd Exp $
*
*/
/* Prescribe (KYOCERA) driver - Michael Waldor */
/*[
* Copyright 1990 - 1993, 1998
*
* Permission to use, copy, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation.
*
* Permission to modify the software is granted, but not the right to
* distribute the complete modified source code. Modifications are to
* be distributed as patches to the released version. Permission to
* distribute binaries produced by compiling modified sources is granted,
* provided you
* 1. distribute the corresponding source modifications from the
* released version in the form of a patch file along with the binaries,
* 2. add special version identification to distinguish your version
* in addition to the base release version number,
* 3. provide your name and address as the primary contact for the
* support of your modified version, and
* 4. retain our contact information in regard to use of the base
* software.
* Permission to distribute the released version of the source code along
* with corresponding source modifications in the form of a patch file is
* granted with same provisions 2 through 4 for binary distributions.
*
* This software is provided "as is" without express or implied warranty
* to the extent permitted by applicable law.
]*/
/* Modified for gnuplot 2.0 sk@sun4 24-Apr-1990 13:23 */
/*
* adapted to the new terminal layout by Stefan Bodewig (Dec. 1995)
*/
#include "driver.h"
#ifdef TERM_REGISTER
register_term(prescribe)
register_term(kyo)
#endif
#ifdef TERM_PROTO
TERM_PUBLIC void PRE_init __PROTO((void));
TERM_PUBLIC void KYO_init __PROTO((void));
TERM_PUBLIC void PRE_graphics __PROTO((void));
TERM_PUBLIC void PRE_text __PROTO((void));
TERM_PUBLIC void PRE_linetype __PROTO((int linetype));
TERM_PUBLIC void PRE_move __PROTO((unsigned int x, unsigned int y));
TERM_PUBLIC void PRE_vector __PROTO((unsigned int x, unsigned int y));
TERM_PUBLIC void PRE_put_text __PROTO((unsigned int x, unsigned int y, char *str));
TERM_PUBLIC int PRE_justify_text __PROTO((enum JUSTIFY mode));
TERM_PUBLIC void PRE_reset __PROTO((void));
#define PRE_XMAX 2567
#define PRE_YMAX 1815 /* X:Y = sqrt(2) */
#define PRE_VCHAR (PRE_YMAX/30)
#define PRE_HCHAR 33 /* about 9 chars per inch */
#define PRE_HTIC (PRE_XMAX/80)
#define PRE_VTIC PRE_HTIC
/* for Courier font: */
#define KYO_VCHAR (14*(300/72)) /* 12 pt + 2 pt baselineskip */
#define KYO_HCHAR (300/10) /* 10 chars per inch */
#endif /* TERM_PROTO */
#ifndef TERM_PROTO_ONLY
#ifdef TERM_BODY
#define PRE_XLAST (PRE_XMAX - 1)
#define PRE_YLAST (PRE_YMAX - 1)
enum JUSTIFY pre_justify = LEFT; /* text is flush left */
TERM_PUBLIC void PRE_init()
{
fputs("!R! RES;\n", gpoutfile);
/* UNIT: units are dots, 300 dots = 1 in = 72 pt */
/* SPO: landscape format */
/* STM, SLM set top, left margin */
/* Font: bold Helvetica (proportional font) */
fputs("PAGE; UNIT D; SPO L; STM 280; SLM 440;\n", gpoutfile);
fputs("FTMD 15; FONT 29; SCPI 9;\n", gpoutfile);
}
TERM_PUBLIC void KYO_init()
{
fputs("!R! RES;\n", gpoutfile);
/* UNIT: units are dots, 300 dots = 1 in = 72 pt */
/* SPO: landscape format */
/* STM, SLM set top, left margin */
/* Font: Courier (fixed width font) */
fputs("PAGE; UNIT D; SPO L; STM 280; SLM 440;\n", gpoutfile);
fputs("FTMD 15; FONT 17; SCPI 10;\n", gpoutfile);
}
TERM_PUBLIC void PRE_graphics()
{
}
TERM_PUBLIC void PRE_text()
{ /* eject page after each plot */
fputs("PAGE;\n", gpoutfile);
}
TERM_PUBLIC void PRE_linetype(linetype)
int linetype;
{
/* actually choose pendiameter */
if (linetype < 0)
linetype = -linetype;
else
linetype = 3;
(void) fprintf(gpoutfile, "SPD %d;\n", linetype);
}
TERM_PUBLIC void PRE_move(x, y)
unsigned int x, y;
{
(void) fprintf(gpoutfile, "MAP %1d,%1d;\n", x, PRE_YMAX - y);
}
TERM_PUBLIC void PRE_vector(x, y)
unsigned int x, y;
{
(void) fprintf(gpoutfile, "DAP %1d, %1d;\n", x, PRE_YMAX - y);
}
TERM_PUBLIC void PRE_put_text(x, y, str)
unsigned int x, y;
char *str;
{
PRE_move(x, y);
switch (pre_justify) {
case RIGHT:
(void) fprintf(gpoutfile, "RTXT \"%s\", B;\n", str);
break;
default:
(void) fprintf(gpoutfile, "TEXT \"%s\", B;\n", str);
}
}
TERM_PUBLIC int PRE_justify_text(mode)
enum JUSTIFY mode;
{
pre_justify = mode;
switch (pre_justify) {
case LEFT:
case RIGHT:
return (TRUE);
default:
return (FALSE);
}
}
TERM_PUBLIC void PRE_reset()
{
fputs("PAGE; RES; EXIT;\n", gpoutfile);
}
#endif /* TERM_BODY */
#ifdef TERM_TABLE
TERM_TABLE_START(prescribe_driver)
"prescribe", "Prescribe - for the Kyocera Laser Printer",
PRE_XMAX, PRE_YMAX, PRE_VCHAR, PRE_HCHAR,
PRE_VTIC, PRE_HTIC, options_null, PRE_init, PRE_reset,
PRE_text, null_scale, PRE_graphics, PRE_move, PRE_vector,
PRE_linetype, PRE_put_text, null_text_angle,
PRE_justify_text, line_and_point, do_arrow, set_font_null
TERM_TABLE_END(prescribe_driver)
#undef LAST_TERM
#define LAST_TERM prescribe_driver
TERM_TABLE_START(kyo_driver)
"kyo", "Kyocera Laser Printer with Courier font",
PRE_XMAX, PRE_YMAX, KYO_VCHAR, KYO_HCHAR,
PRE_VTIC, PRE_HTIC, options_null, KYO_init, PRE_reset,
PRE_text, null_scale, PRE_graphics, PRE_move, PRE_vector,
PRE_linetype, PRE_put_text, null_text_angle,
PRE_justify_text, line_and_point, do_arrow, set_font_null
TERM_TABLE_END(kyo_driver)
#undef LAST_TERM
#define LAST_TERM kyo_driver
#endif /* TERM_TABLE */
#endif /* TERM_PROTO_ONLY */
#ifdef TERM_HELP
START_HELP(kyo)
"1 kyo",
"?commands set terminal kyo",
"?set terminal kyo",
"?set term kyo",
"?terminal kyo",
"?term kyo",
"?kyo",
"?commands set terminal prescribe",
"?set terminal prescribe",
"?set term prescribe",
"?terminal prescribe",
"?term prescribe",
"?prescribe",
" The `kyo` and `prescribe` terminal drivers support the Kyocera laser printer.",
" The only difference between the two is that `kyo` uses \"Helvetica\" whereas",
" `prescribe` uses \"Courier\". There are no options."
END_HELP(kyo)
#endif